//
//  ZBStatusListViewModel.swift
//  ZBWb
//
//  Created by 天隐翎 on 16/4/16.
//  Copyright © 2016年 csdn. All rights reserved.
//

import UIKit

class ZBStatusListViewModel: NSObject {
    
//    设置属性
//    lazy var status:[ZBStatus] = [ZBStatus]()
    
    
    
    lazy var statusArray:[ZBStatusCellViewModel] = [ZBStatusCellViewModel]()
    
 
    func loadHomagePageData(isPullup: Bool, finished: (isSuccess: Bool) -> ()) {
        //        首先判断用户是否登录了
        guard let token = ZBuserInfoModelViewOuath.shareInfoModelViewOuath.userAccount?.access_token else
        {
//            print("用户未登录")
            
            return
        }
        
        //上拉加载更多数据 max_id
        //加载更多数据  执行上拉操作
        //不能够同时制定since_id 和 max_id  这两个字段互斥的 只能够传一个
        var max_id: Int64 = 0
        var since_id: Int64 = 0
        if isPullup {
            //上拉
            max_id = statusArray.last?.status?.id ?? 0
        } else {
            //下拉
            since_id = statusArray.first?.status?.id ?? 0
        }

        ZBNetWorkTool.sharedTools.loadHomePageData(token,max_id: max_id,since_id: since_id) { (result, error) -> () in
            if error != nil {
                finished(isSuccess: false)
                return
            }

            //            到这里说明网络请求成功
//            print(result)
            
            //            把数据转换成模型
            guard let dict = result as? [String : AnyObject] else{
                
//                SVProgressHUD.showErrorWithStatus("数据格式错误")
                finished(isSuccess: false)
                return
            }
            //            根据status的key获取对应的字典数组
            guard let array = dict["statuses"] as? [[String : AnyObject]] else{
                //                数据格式错误
//                SVProgressHUD.showErrorWithStatus("数据格式错误")
                finished(isSuccess: false)
                
                return
            }
            //            把字典数组,转换成模型数组
            //            声明一个可变数组
//            var tempArray = [ZBStatus]()
            var tempArray = [ZBStatusCellViewModel]()
            //            遍历数组
            for item in array{
                //                字典转模型
                let s =  ZBStatus(dict: item)
                let sViewModel = ZBStatusCellViewModel(Status: s)
                
                //                将模型数据添加到可变数组中
                tempArray.append(sViewModel)
                
            }
            //保存数组
            //            self.statusArray = tempArray
            if isPullup {
                //上拉加载更多数据
                self.statusArray = self.statusArray + tempArray
            } else {
                //下拉刷新数据
                self.statusArray = tempArray + self.statusArray
            }
            
            //            刷新数据
//            self.tableView.reloadData()
            finished(isSuccess: true)
        }
    }
    
}


